package br.com.ro.view;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.ro.model.dao.PerfilDao;
import br.com.ro.model.entity.Perfil;
import br.com.ro.util.BeanFactory;
import br.com.ro.util.Utils;

@ManagedBean(name = "perfilBean")
@ViewScoped
public class PerfilBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private Perfil perfil = new Perfil();
	private List<Perfil> listaPerfils = new ArrayList<Perfil>();
	private PerfilDao perfilDao = (PerfilDao) BeanFactory.getBean("perfilDao", PerfilDao.class);

	public PerfilBean() {
		atualizarTela();
	}

	/**
	 * Limpa os campos input e atualiza a lista de usuários cadastrados
	 */
	private void atualizarTela() {
		perfil = new Perfil();
		listaPerfils = perfilDao.listAll();
	}

	public void limpar() {
		perfil = new Perfil();
	}

	/**
	 * Grava novo registro ou atualiza um registro
	 */
	public void gravar() {
		Object[] obj = { getPerfil().getDescricao(), "O perfil" };
		if (Utils.getValilador().validar(obj))
			return;

		perfilDao.save(getPerfil());
		atualizarTela();
	}

	/**
	 * Exclui um registro da tabela usuario
	 */
	public void excluir() {
		perfilDao.delete(getPerfil());
		atualizarTela();
	}

	public List<Perfil> getListaPerfils() {
		return listaPerfils;
	}

	public void setListaPerfils(List<Perfil> listaPerfils) {
		this.listaPerfils = listaPerfils;
	}

	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}
}
